Manual interactivo para aprender SQL paso a paso: creación de bases de datos, tablas, relaciones, consultas, JOINs, transacciones y buenas prácticas profesionales usando ejemplos orientados a empleados, departamentos y proyectos empresariales.
SQL (Structured Query Language) es el lenguaje estándar para trabajar con bases de datos relacionales.
Permite:
| Concepto | Descripción |
|---|---|
| Tabla | Conjunto de datos organizados |
| Fila | Registro individual |
| Columna | Campo de información |
| Relación | Conexión entre tablas |
CREATE DATABASE EmpresaDB;
USE EmpresaDB;
| Tipo | Uso |
|---|---|
| INT | Números enteros |
| VARCHAR | Texto |
| DECIMAL | Dinero |
| DATE | Fechas |
| BOOLEAN | Verdadero/Falso |
CREATE TABLE Empleados (
id_empleado INT PRIMARY KEY,
nombre VARCHAR(80) NOT NULL,
telefono VARCHAR(20),
email VARCHAR(100) UNIQUE,
salario DECIMAL(8,2)
);
Las relaciones conectan tablas entre sí.
CREATE TABLE Departamentos (
id_departamento INT PRIMARY KEY,
nombre VARCHAR(80)
);
CREATE TABLE Empleados (
id_empleado INT PRIMARY KEY,
nombre VARCHAR(80),
id_departamento INT,
FOREIGN KEY(id_departamento)
REFERENCES Departamentos(id_departamento)
);
INSERT INTO Departamentos VALUES
(1, 'Recursos Humanos'),
(2, 'Finanzas'),
(3, 'Tecnología');
INSERT INTO Empleados VALUES
(1, 'Laura Gómez', '611222333',
'laura@empresa.com', 2400.00, 1),
(2, 'Carlos Ruiz', '699111555',
'carlos@empresa.com', 3200.00, 3);
SELECT * FROM Empleados;
SELECT nombre, salario
FROM Empleados;
SELECT *
FROM Empleados
WHERE salario > 2500;
SELECT *
FROM Empleados
ORDER BY salario DESC;
| Operador | Uso |
|---|---|
| = | Igual |
| > | Mayor |
| < | Menor |
| LIKE | Búsqueda parcial |
UPDATE Empleados
SET salario = 3500
WHERE id_empleado = 2;
DELETE FROM Empleados
WHERE id_empleado = 1;
Siempre prueba primero con SELECT.
SELECT *
FROM Empleados
WHERE id_empleado = 2;
JOIN permite unir tablas relacionadas.
SELECT
E.nombre,
D.nombre AS departamento,
E.salario
FROM Empleados E
JOIN Departamentos D
ON E.id_departamento =
D.id_departamento;
| Alias | Tabla |
|---|---|
| E | Empleados |
| D | Departamentos |
Las transacciones agrupan operaciones críticas.
START TRANSACTION;
UPDATE Empleados
SET salario = salario - 200
WHERE id_empleado = 1;
UPDATE Empleados
SET salario = salario + 200
WHERE id_empleado = 2;
COMMIT;
ROLLBACK;
Deshace cambios si algo falla.
ALTER TABLE Empleados
ADD fecha_contrato DATE;
ALTER TABLE Empleados
MODIFY telefono VARCHAR(30);
DROP TABLE Empleados;
DROP DATABASE EmpresaDB;